package com.doit.spark.day04

import com.doit.spark.day01.utils.SparkUtil

/**
 * @DATE 2022/1/6/17:53
 * @Author MDK
 * @Version 2021.2.2
 * */
object C04_CheckPoint {
  def main(args: Array[String]): Unit = {
    //rdd数据经过多次循环运算  rdd5较为复杂  为了提高程序运行效率可将运算完成的数据加载

    val sc = SparkUtil.getSc
    val rdd1 = sc.makeRDD(List[Int](1, 2, 3, 4, 5), 2)
    val rdd2 = rdd1.map(_ * 2)
    val rdd3 = rdd2.map(_ * 3)
    val rdd4 = rdd3.map(_ * 10)
    val rdd5 = rdd4.map(e => {
      (e, e * e)
    })

    sc.setCheckpointDir("data/checkpoint/rdd5/")
    //持久化前先缓存
    rdd5.cache()
    //持久化数据
    rdd5.checkpoint()

    //------------------加载checkPoint下的数据----------------------
    rdd5.map(e => e)
    rdd5.foreach(println)
  }
}
